package sg.simple.snmp.provider;

import isnmp.ui.dto.CPUInfo;
import isnmp.ui.dto.DeviceInfo;
import isnmp.ui.dto.MachineInfo;
import isnmp.ui.dto.NetworkInfo;
import isnmp.ui.dto.ProgramInfo;
import isnmp.ui.dto.StorageInfo;

import java.util.List;

public interface SimpleSNMPQueries {

	public void listIPsAsync(final String subnet, final int timeoutInMillies,
			final IpDiscoveryCallback callback) throws NetMapException;

	public MachineInfo getMachineInfo(String ipAddress,
			int timeoutInMillies, String community) throws NetMapException;

	public void shutdownMachine(String ipAddress) throws NetMapException;

	public void restartMachine(String ipAddress) throws NetMapException;

	public void blockMachine(String ipAddress) throws NetMapException;

	public boolean isMachineAlive(String ipAddress, int timeoutInMillies);

	public List<CPUInfo> getCPUInfo(String ipAddress, int timeoutInMillies,
			String community) throws NetMapException;

	public List<ProgramInfo> getProgramInfo(String ipAddress,
			int timeoutInMillies, String community) throws NetMapException;

	public List<NetworkInfo> getNeworkInfo(String ipAddress,
			int timeoutInMillies, String community) throws NetMapException;

	public List<StorageInfo> getStorageInfo(String ipAddress,
			int timeoutInMillies, String community) throws NetMapException;
	
	
	

	public List<DeviceInfo> getDeviceInfo(String ipAddress,
			int timeoutInMillies, String community) throws NetMapException;
	
}
